home *** CD-ROM | disk | FTP | other *** search
- Program check;
- uses dos,crt;
-
- const
- {カラーテーブル設定}
- kuro=0;Ao=1;Midori=2;Mizuiro=3;Aka=4;Kiiro=6;Murasaki=5;Shiro=7;
- CrChar ='';{ ^M;} (* 改行文字 ここでは使っていない*)
-
- {$I check.lib}
-
- var
- jisyo1,jisyo2,jisyo3,
- STringLine,tango,tango_file2,filename,ws,lineNo:string;
- flag,i,j,KURIKAESHI,linecounter:integer;
- hensyufile:text;
- ch:char;
- dammy:string[1];
- bword,word:array[1..80] of string;{一文中の単語数の許容範囲}
-
- begin
- {===初期の表示=====完成=====================================}
- HeapError := @HeapFunc;
- title;
- line;
- {backcolor(ao);}
- {===辞書ファイルの初期化========完成================================}
- config(jisyo1,jisyo2,jisyo3); {辞書ファイルの設定jisyo1,jisyo2,jisyo3は辞書}
- {1:無かったら新規作成 2:無かったら終了 3:あっても新規作成}
- CheckFileExist(2,jisyo1);
- CheckFileExist(1,jisyo2);
- CheckFileExist(3,jisyo3);
- {===編集ファイルの選択========完成================================}
- case paramcount of
- 0:begin
- repeat
- write('編集対象のファイル名を与えて下さい>');
- readln(filename);
- openfile(filename,hensyufile,flag);
- linecounter:=1;j:=0;
- until flag=0;
- end;
- 1:begin
- filename:=paramstr(1);
- linecounter:=1;j:=0;
- openfile(filename,hensyufile,flag);
- if flag=1 then
- begin
- textcolor(aka);
- writeln(^G+'コマンドエラー');
- textcolor(shiro);
- writeln('使い方');
- writeln('CHECK [ファイル名:String] [行番号:integer]');
- halt(1);
- end;
- end;
- 2:begin
- filename:=paramstr(1);
- linecounter:=1;j:=0;
- openfile(filename,hensyufile,flag);
- if flag=1 then
- begin
- textcolor(aka);
- writeln(^G+'コマンドエラー');
- textcolor(shiro);
- writeln('使い方');
- writeln('CHECK [ファイル名:String] [行番号:integer]');
- halt(1);
- end
- else
- begin
- lineNo:=paramstr(2);
- val(lineNo,j,flag);
- if flag=1 then halt(1);
- end;
- end;
- end;{end of case}
-
-
- {===一文を文書ファイルより切り取り単語に分解===完成====================}
- repeat {一番大きな repeat }
- line;
- {linecounter:=linecounter+1;}
- if j>linecounter then
- begin
- if (not(paramstr(1)='') and (flag=0)) then
- begin
- repeat
- readln(hensyufile,STRINGline);linecounter:=linecounter+1;
- until linecounter=j;
- end;
- end;
-
- textcolor(kiiro);
- writeln('この行は ',filename,' の ',linecounter,' 行目です。');
- textcolor(shiro);
-
- repeat
- readln(hensyufile,STRINGline);linecounter:=linecounter+1;
- until ( eoln(hensyufile) or eof(hensyufile) or (stringline<>''));
-
- { 単語に分解するルーチン 完成}
- i:=0;
- repeat
- Ws:='';
- repeat
- dammy:=copy(STRINGline,1,1);
- if not ((dammy='!') or (dammy='?') or (dammy=' ') or
- (dammy=':') or (dammy='.') or (dammy='')) then WS:=WS+dammy;
- delete(STringLine,1,1);
- until ((dammy='!') or (dammy='?') or (dammy=' ') or
- (dammy=':') or (dammy='.') or (dammy=''));
- if ws<>'' then
- begin
- i:=i+1;
- Word[i]:=WS;
- end;
- until STringLine='';
- { 単語に分解するルーチン <-- ここで終わり}
-
- {====辞書を検索し結果を表示するルーチン=================================}
- for KURIKAESHI:=1 to i do
- begin
- if ((word[KURIKAESHI]<>'') or (word[KURIKAESHI]='' ))
- then bword[KURIKAESHI]:=word[KURIKAESHI];
- SearchWordfromDIC(jisyo2,bword[KURIKAESHI],tango);
- tango_file2:=tango;
- if tango='' then SearchWordfromDIC(jisyo1,bword[KURIKAESHI],tango);
- {↓辞書2になくて辞書1にあった場合に辞書2に書き込む}
- if ((tango_file2='') and (tango<>'')) then
- DataPlus2File(jisyo2,bword[KURIKAESHI]);
- if tango=''
- then
- begin
- textcolor(mizuiro);
- write(bword[KURIKAESHI]);
- textcolor(shiro);
- writeln(':この単語は存在しません。');
- textcolor(aka);
- writeln(^G+'辞書3に保存しておきますか [Y/N]');
- textcolor(shiro);
- repeat
- ch:=readkey;
- until ch in ['y','Y','n','N'];
- if ch in ['y','Y'] then
- begin
- {↓辞書2と辞書1のどちらにも無い場合のみ辞書3に書き込む}
- DataPlus2File(jisyo3,bword[KURIKAESHI]);
- writeln('保存しました');
- end;
- end
- else
- begin
- textcolor(mizuiro);
- write(bword[KURIKAESHI]);
- textcolor(shiro);
- writeln(':この単語は存在します。');
- end;
- end;{of for}
-
- until eof(hensyufile);
- {これは一番大きな繰り返しのrepeatに対応するuntil}
- close(hensyufile);
- {backcolor(kuro);}
- textcolor(shiro);
- halt(0);
- end.
-